\subsection{Windows Presentation Foundation}
\subsubsection{Allgemein}
Die Windows Presentation Foundation, auch unter dem Namen “Avalon” bekannt, ist das neue Grafik-Framework von Microsoft und soll zukünfigt Windows Forms ablösen. Es ist sehr vielseitig und individuell einsetzbar, wobei die wohl mächtigste Komponente das sehr gut implementierte Data-Binding (Datenbindung) darstellt. In WPF wird strikt zwischen Code und Design getrennt, indem für jede Anzeige(View) eine .xaml und eine .cs-Datei erstellt wird. 
Das Design wird mit Hilfe von XAML(Extensible Application Markup Language) festgelegt, wobei hier neben der Darstellung auch schon die Datenbindung festgelegt werden kann.\\
XAML ist auch sehr flexibel was die Darstellung von Steuerungselementen wie Listen und Tabellen angeht. So können sogar selbst komponierte Steuerelemente zur Darstellung eines Eintrags in einer Liste verwendet werden. Wenn man diese Eigenschaft noch mit der mächtigen Datenbindung und einer Datenbank verknüpft gibt es beinahe unbegrenzte Verwendungsmöglichkeiten. Zusätzlich ist dadurch nur mehr wenig Code hinter der Oberfläche zu verwalten.\\
Da wir durch unser Ferialpraktika im Sommer 2011 viel Erfahrung mit diesem Framework sammeln konnten und uns die vielseitigen Verwendungsmöglichkeiten sehr zusagten, fiel unsere Wahl auf eben diese Technologie.\footcite[vgl][]{wpf}
\subsubsection{MVVM}
Das Model-View-Viewmodel stellt ein Architektur-Pattern in WPF dar, welches sehr dem Model-View-Controller-Prinzip von ASP.NET ähnelt. Da die Implementierung jedoch aufwendig und nur bei größeren Datenmengen sinnvoll ist, haben wir uns gegen die Verwendung dieses Patterns entschieden. Dennoch möchten wir es im Zuge dieser Diplomarbeit kurz erläutern, da es das wohl wichtigste Architektur-Pattern für Verwaltungsprogramme darstellt.\\
Das Pattern gliedert die Anwendung in drei Bereiche. Das Model stellt die tatsächlich vorhandenen Daten dar und könnte beispielsweise eine Datenbank sein. Eine View ist eine Anzeige und stellt einen bestimmten Teil der Daten im Model dar. Da die Daten im Model jedoch meist von den gewünschten Daten in der View abweichen und man die Logik gern vom Design getrennt hält, schaltet man nun ein sogenanntes ViewModel als Schnittstelle zwischen Anzeige und Daten dazwischen. \\
Das ViewModel kümmert sich um Konvertierung und Formatierung der Daten und ist gezielt auf eine View zugeschnitten. Auch Kommandos die vom Anwender ausgeführt werden, z.B. durch einen Button-Klick, werden vom ViewModel verwaltet und ausgeführt. Dadurch wird der Code hinter der View minimal.\footcite[vgl][]{mvvm}
